#include "struct.h"
#include "function.h"

/**
 * @brief 通过用户输入的书名，来删除图书
 * 
 * @param list 
 * @param book 
 * @return true 
 * @return false 
 */
bool delete_func(p_node list, Book book)
{
    //判断链表是否为空
    if(list == NULL)
    {
        printf("链表为空，没有图书\n");
        return false;
    }

    //用书名来删除
    //准备工作
    char arr[20] = {0};
    printf("请输入您要删除的书籍名称：");
    scanf("%19s", arr);                     //限制输入长度，防止溢出
    p_node current = list;

    //开始查找
    while(current != NULL)
    {
        if(strcmp(arr, current->data.title) == 0)
        {
            printf("\n找到了《%s》这本书,可以进行删除\n", current->data.title);

            //删除操作
            if(current->next != NULL)               //不是删除最后一个
            {
                current->next->prev = current->prev;
                current->prev->next = current->next;
                free(current);
            }
            else                                      //删除最后一个
            {
                current->prev->next = NULL;
                free(current);
            }

            printf("删除成功\n");

            list->count --;         //节点个数减一
            return true;
        }

        current = current->next;
    }

    //没有这本书的情况
    printf("该系统中没有《%s》这本书，删除失败\n", arr);
    return false;
}